﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using AccesoDatos.Manejador;
using AccesoDatos.Objetos;
using Conexion;
using System.Windows.Forms;

namespace Autorizacion_facturas_caja
{
    public partial class frmBonos_Captura : Form
    {
        double porciento;
        objBono objB = new objBono();
        objRH objR1 = new objRH();
        objRH objR2 = new objRH();
        objRH objR3 = new objRH();

        Manejador_Bonos ManB = new Manejador_Bonos();
        Manejador_Empleado_Captura ManE = new Manejador_Empleado_Captura();
        int id_bono1, id_empleado1, id_jefe;
        double sueldo_mensual, bono, pagar_bono, total;
        string nombre_jefe, mes;
        int year;
        int forma1;

        public frmBonos_Captura(int id_bono, int id_empleado, int forma)
        {
            InitializeComponent();
            id_bono1 = id_bono;
            id_empleado1 = id_empleado;
            forma1 = forma;
            switch (forma)
            {
                case 1: 
                    groupBox4.Visible = false;
                    groupBox5.Visible = false;
                    break;
                case 2:
                    groupBox2.Visible = false;
                    groupBox3.Visible = false;
                    groupBox3.Visible = true;
                    groupBox4.Visible = true;
                    break;

            }
            ToolTip();
            ObtieneDatos(forma);
            MuestraDatos();

        }
      
        public void MuestraDatos() 
        {
            lblNombre.Text = objR1.Nombre + ' ' + objR1.Apellidos;
            lblSucursal.Text = objR1.Nombre_Sucursal;
            lblDepartamento.Text = objR1.Departamento;
            lblPuesto.Text = objR1.Puesto;

            lblSueldo.Text = String.Format(" $ {0:###,##0.00}", sueldo_mensual);
            lblBono.Text = String.Format(" $ {0:###,##0.00}", bono); 
            lblMensual.Text = String.Format(" $ {0:###,##0.00}", total);
            lblRevisado.Text = objR3.Nombre + ' ' + objR3.Apellidos;
            txtAprobado.Text = objB.Aprobado.ToString();
        }
      
        public void ObtieneDatos(int forma) 
        {
            objR2 = ManB.ObtieneDatosSueldo(id_empleado1);
            objR1 = ManE.ObtieneEmpleado(id_empleado1);
            sueldo_mensual = Convert.ToDouble(objR2.Sueldo_Mensual);
            bono = Convert.ToDouble(objR2.Bono);
            total = Convert.ToDouble(objR2.Sueldo_Mensual) + Convert.ToDouble(objR2.Bono);
           switch (forma){
               case 1:
               objB = ManB.ObtieneDatosBono(id_bono1);
               objR3  = ManE.ObtieneEmpleado(objB.Id_revisado);
               if (objB.tipo == "extra") {
                   groupBox3.Visible = false;
                   groupBox2.Visible = false;
                   groupBox4.Visible = true;
                   groupBox5.Visible = true;
                   btnBuscar.Visible = false;
                   lblJefe.Text = objR3.Nombre + ' ' + objR3.Apellidos;
                   txtPagar.Text = objB.Pagar.ToString();
               }
            break;
           }
        }

        private void ToolTip()
        {
            ToolTip toolTip1 = new ToolTip();

            toolTip1.ShowAlways = true;
            toolTip1.SetToolTip(this.btnBuscar, "BUSCAR");
            toolTip1.SetToolTip(this.btnCancelar, "CANCELAR");
            toolTip1.SetToolTip(this.btnGuardarMod, "GUARDAR");
            toolTip1.SetToolTip(this.btnAceptar2, "GUARDAR");
            toolTip1.SetToolTip(this.btnCancelar2, "CANCELAR");
        }
        
        private void txtAprobado_TextChanged(object sender, EventArgs e)
        {
            if (txtAprobado.Text.Trim() != "")
            {
                porciento = Convert.ToDouble(txtAprobado.Text.Trim());
                pagar_bono = (porciento * 0.01) * bono;
                lblPagar.Text = String.Format("$ {0:###,##0.00}", pagar_bono);
            }
            else { lblPagar.Text = " $ 0.00"; }
        }

        private void btnCancelar_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void btnGuardarMod_Click(object sender, EventArgs e)
        {
            bool resp = ManB.GuardaBono(id_bono1, porciento, pagar_bono);
            if (resp)
            {
                //Message.Show("Guardado Correctamente"); 
                Close();
            }
            else MessageBox.Show("NO SE GUARDO");
        }

        private void btnBuscar_Click(object sender, EventArgs e)
        {
            objRH objR = new objRH();
            frmEmpleado_Busqueda bus = new frmEmpleado_Busqueda();
            bus.ShowDialog();
            id_jefe = bus.obj1.Id_Empleado;
            objR = ManE.ObtieneEmpleado(id_jefe);
            nombre_jefe = objR.Nombre + ' ' + objR.Apellidos;
            lblJefe.Text = nombre_jefe;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            DateTime fecha= new DateTime();

            fecha = dteFecha.Value;
            mes = fecha.ToString("MMMM");
            year = fecha.Year;
            double porciento=100;
           bool resp;
           if(forma1==1 && txtPagar.Text != ""){
               resp = ManB.GuardaBono(id_bono1, porciento, Convert.ToDouble(txtPagar.Text.Trim()));
                    if (resp) Close();
                    else MessageBox.Show("NO SE GUARDO, COMPRUEBE EVITE LOS CAMPOS VACIOS");
           }else {           
                    resp = ManB.GuardaBono_Extra(objR1.Id_Empleado, id_jefe, txtPagar.Text.ToString().Trim(), mes, year);
                    if (resp) { MessageBox.Show("SE GUARDO CORRECTAMENTE"); Close();}
                    else { MessageBox.Show("ERROR");}
            }
        }

        private void txtPagar_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (Char.IsDigit(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsControl(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsSeparator(e.KeyChar))
            {
                e.Handled = false;
            }
            else
            {
                e.Handled = true;
            }
        }

        private void txtAprobado_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (Char.IsDigit(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsControl(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsSeparator(e.KeyChar))
            {
                e.Handled = false;
            }
            else
            {
                e.Handled = true;
            }
        }

    
    }
}
